#ifndef __PE4302__
#define __PE4302__
#include "ch32v30x.h"
#define LE1_PORT GPIOB
#define LE1_PIN GPIO_Pin_0
#define LE2_PORT GPIOB
#define LE2_PIN GPIO_Pin_0
// #define LE1_PORT GPIOC
// #define LE1_PIN GPIO_Pin_15
// #define LE2_PORT GPIOA
// #define LE2_PIN GPIO_Pin_7

#define PE4302Port GPIOB
#define CLK_PIN GPIO_Pin_1
#define DATA_PIN GPIO_Pin_2
// #define CLK_PIN GPIO_Pin_0
// #define DATA_PIN GPIO_Pin_1

#define DATA(x)                      \
    if (x)                           \
        PE4302Port->BSHR = DATA_PIN; \
    else                             \
        PE4302Port->BCR = DATA_PIN
#define CLK(x)                      \
    if (x)                          \
        PE4302Port->BSHR = CLK_PIN; \
    else                            \
        PE4302Port->BCR = CLK_PIN
#define LE1(x)                    \
    if (x)                        \
        LE1_PORT->BSHR = LE1_PIN; \
    else                          \
        LE1_PORT->BCR = LE1_PIN
#define LE2(x)                    \
    if (x)                        \
        LE2_PORT->BSHR = LE2_PIN; \
    else                          \
        LE2_PORT->BCR = LE2_PIN

void pe4302Init (void);
void SetAttenuation (uint8_t db, uint8_t idx);
#endif